home *** CD-ROM | disk | FTP | other *** search
File List | 1999-05-08 | 3.6 KB | 105 lines |
-
- ; -------------------------------------------------------------
- ; Gibt eine kurze Info als DragonDaemon-Requester aus
- ;
- ; Benoetigt Eintrag "blitzlibs:Amigalibs.res" in den
- ; Compiler-Optionen
- ; -------------------------------------------------------------
-
- WBStartup
-
- ; -------------------------------------------------------------
- ; DragonDaemon-Komandos
- ; -------------------------------------------------------------
-
- #DDCMD_EXITDAEMON =0
- #DDCMD_GETCOUNTER =1
- #DDCMD_DIALNUMBER =2
- #DDCMD_RESETCOUNTER =3
- #DDCMD_INFO =4
- #DDCMD_REQUEST =5
- #DDCMD_ERROR =6
-
- ; -------------------------------------------------------------
- ; DragonDaemon-Strukturen
- ; -------------------------------------------------------------
-
- NEWTYPE.DD_Message
- dd_StdMsg.Message
- dd_Command.l
- dd_Arg0.l
- dd_Arg1.l
- dd_Options.l
- dd_Result.b[128]
- dd_Return.l
- End NEWTYPE
-
- ; -------------------------------------------------------------
- ; Variablen-Typen definieren
- ; -------------------------------------------------------------
-
- DEFTYPE.l
- DEFTYPE.DD_Message *ddmsg
-
- ; -------------------------------------------------------------
- ; Programm initialisieren
- ; -------------------------------------------------------------
-
- *ddmsg=AllocVec_(SizeOf.DD_Message,#MEMF_CLEAR|#MEMF_PUBLIC)
- If *ddmsg
- *ddreply.MsgPort =CreateMsgPort_() ; ReplyPort einrichten
- If *ddreply
- AddPort_ *ddreply ; ReplyPort in Systemliste eintragen
- BSR main ; Hauptprogramm starten
- RemPort_ *ddreply ; ReplyPort aus Systemliste entfernen
- DeleteMsgPort_ *ddreply ; ReplyPort freigeben
- EndIf
- FreeVec_ *ddmsg ; Arbeitsspeicher freigeben
- EndIf
- End
-
- ; -------------------------------------------------------------
- ; Versions-String
- ; -------------------------------------------------------------
-
- .copyright
- Dc.b "$VER: Infotest 0.1 (13.04.99) by J.Reinert",0
- Even
-
- ; -------------------------------------------------------------
- ; Message an DragonDaemon schicken
- ; -------------------------------------------------------------
-
- Function.l Send2Daemon{command.l,arg0.l,arg1.l,opt.l}
- SHARED *ddmsg,*ddreply ; Globale Variablen
- error=1 ; Fehler auf 1 setzen
- *ddmsg\dd_StdMsg\mn_ReplyPort=*ddreply ; ReplyPort in Message schreiben
- *ddmsg\dd_StdMsg\mn_Length=SizeOf.DD_Message ; Laenge der Message eintragen
- *ddmsg\dd_Command =command ; DragonDaemon-Befehl eintragen
- *ddmsg\dd_Arg0 =arg0 ; Erster Parameter
- *ddmsg\dd_Arg1 =arg1 ; Zweiter Parameter
- *ddmsg\dd_Options =opt ; Optionen
- *ddmsg\dd_StdMsg\mn_Node\ln_Type=#NT_MESSAGE ; Struktur-Typ=Message
- dcrx=FindPort_(Null("DragonDaemon")) ; MessagePort des Daemon suchen
- If dcrx<>0 ; Wenn Port gefunden...
- PutMsg_ dcrx,*ddmsg ; Message an Port schicken
- WaitPort_ *ddreply ; warten auf Antwort
- Repeat ; Alle Nachrichten vom ReplyPort holen
- dummy=GetMsg_(*ddreply)
- If dummy<>0
- error=*ddmsg\dd_Return ; Fehler aus Reply holen
- EndIf
- Until dummy=0
- EndIf
- Function Return error
- End Function
-
- ; -------------------------------------------------------------
- ; Hauptprogramm
- ; -------------------------------------------------------------
-
- .main
- error=Send2Daemon{#DDCMD_INFO,Null("Dies ist eine Info!"),0,0}
- RTS
-
-